home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 April: Mac OS SDK / Dev.CD Apr 96 SDK / Dev.CD Apr 96 SDK2.toast / Development Kits (Disc 2) / ScriptX / Draggable ScriptX Folders / utils / DTK / Examples / Custom Classes / cci.mak < prev    next >
Encoding:
Text File  |  1995-12-19  |  4.1 KB  |  139 lines  |  [TEXT/ttxt]

  1. --<<<
  2.  
  3. fileIn theScriptDir name:"cciDef.sx"
  4. module customClassImplementation
  5.     uses ScriptX,customClassesInterface
  6. end
  7. module cciAssemble
  8.     uses ScriptX,customClassesInterface
  9. end
  10.  
  11. in module customClassImplementation
  12. global castList := new array
  13. global castByName := new hashTable
  14. in module cciAssemble
  15. if not (isFile theScriptDir "cciDef.out") do (
  16.     createFile theScriptDir "cciDef.out" @text
  17. )
  18. global modDefOut := getStream(theScriptDir,"cciDef.out",@writable)
  19.  
  20. global InterfaceCode := new String
  21. function bldInterface newData->
  22. (
  23.     if isAKindOf(newData,String) do (
  24.         InterfaceCode := InterfaceCode + newData + "\n"
  25.     )
  26.     if isAKindOf(newData,Array) do (
  27.         local newClass := newData[1]
  28.         if newClass <> undefined do (
  29.             local newClassName := getRange (getClassName newClass) 5 100
  30.             InterfaceCode := InterfaceCode + "  exports " + newClassName + "\n"
  31.             --append classList newClass
  32.         )
  33.         if newData[2] <> undefined do (
  34.             for newIV in newData[2] do (
  35.                 InterfaceCode := InterfaceCode + "      exports " + newIV +
  36. "Getter\n"
  37.                 InterfaceCode := InterfaceCode + "      exports " + newIV +
  38. "Setter\n"
  39.             )
  40.         )
  41.         if newData[3] <> undefined do (
  42.             for newMethod in newData[3] do (
  43.                 InterfaceCode := InterfaceCode + "      exports " + newMethod +
  44. "\n"
  45.             )
  46.         )
  47.     )
  48.     return OK
  49. )
  50.  
  51. InterfaceCode := "\nmodule customClassesInterface\n"
  52. bldInterface "  uses scriptX"
  53. bldInterface #(undefined,undefined,#("custClassList","castList","castByName"))
  54.  
  55. global newStuff := fileIn theScriptDir name:"util.fnc" \
  56. module:@customClassImplementation
  57. bldInterface newStuff
  58. newStuff :=  fileIn theScriptDir name:"findSXKey.fnc" \
  59. module:@customClassImplementation
  60. bldInterface newStuff
  61. newStuff :=  fileIn theScriptDir name:"chngsprt.cls" \
  62. module:@customClassImplementation
  63. bldInterface newStuff
  64. newStuff :=  fileIn theScriptDir name:"playsnd.cls" \
  65. module:@customClassImplementation
  66. bldInterface newStuff
  67. newStuff :=  fileIn theScriptDir name:"SmartBounce.cls"\ 
  68. module:@customClassImplementation
  69. bldInterface newStuff
  70. newStuff :=  fileIn theScriptDir name:"slingShot.cls" \
  71. module:@customClassImplementation
  72. bldInterface newStuff
  73. newStuff :=  fileIn theScriptDir name:"Stage.cls" \
  74. module:@customClassImplementation
  75. bldInterface newStuff
  76. newStuff :=  fileIn theScriptDir name:"Scene.cls" \
  77. module:@customClassImplementation
  78. bldInterface newStuff
  79. newStuff :=  fileIn theScriptDir name:"slider.cls" \
  80. module:@customClassImplementation
  81. bldInterface newStuff
  82. newStuff :=  fileIn theScriptDir name:"NavButton.cls" \
  83. module:@customClassImplementation
  84. bldInterface newStuff
  85. newStuff :=  fileIn theScriptDir name:"anim.cls" \
  86. module:@customClassImplementation
  87. bldInterface newStuff
  88. newStuff :=  fileIn theScriptDir name:"instrmnt.cls" \
  89. module:@customClassImplementation
  90. bldInterface newStuff
  91. newStuff :=  fileIn theScriptDir name:"condClock.cls" \
  92. module:@customClassImplementation
  93. bldInterface newStuff
  94. newStuff :=  fileIn theScriptDir name:"conductor.cls" \
  95. module:@customClassImplementation
  96. bldInterface newStuff
  97. newStuff :=  fileIn theScriptDir name:"clocktoggle.cls" \
  98. module:@customClassImplementation
  99. bldInterface newStuff
  100. bldInterface "end"
  101. newStuff := undefined
  102.  
  103. in module customClassImplementation
  104. global custClassList := new keyedLinkedList
  105. (
  106.   add custClassList "NavButton" NavButton
  107.   add custClassList "Scene" Scene
  108.   add custClassList "SlingShotOrb" SlingShotOrb
  109.   add custClassList "Stage" Stage
  110.   add custClassList "Animation" Animation
  111.   add custClassList "Instrument" Instrument
  112.   add custClassList "Slider" Slider
  113.   add custClassList "Conductor" Conductor
  114.   add custClassList "ConductorClock" ConductorClock
  115.   add custClassList "ClockToggle" ClockToggle
  116.   custClassList
  117. )
  118. in module cciAssemble
  119. (
  120.     local ccLib := new LibraryContainer dir:(parentDir theScriptDir) \
  121.     path:"CustClass.sxl" name:"Custom Classes"
  122.     append ccLib (getModule @customClassesInterface)
  123.     append ccLib (getModule @customClassImplementation)
  124.     ccLib.startupAction := (tc-> forEach tc load undefined)
  125.     close ccLib
  126. )
  127. (
  128.     print InterfaceCode
  129.     for b in (InterfaceCode as ByteString) do write modDefOut b
  130.     setStreamLength modDefOut (cursor modDefOut)
  131.     plug modDefOut
  132.     modDefOut := undefined
  133. )
  134.  
  135.  
  136.  
  137. -->>>
  138. quit()
  139.